package com.weixing.mall.pay;

import com.weixing.mall.pay.properties.PayProperties;

import java.util.List;
import java.util.Map;

/**
 * @ClassName IPayFactory
 * @Description
 * @Author Small
 * @Date 2019/12/4 19:30
 * @Version 1.0
 **/
public interface IPayFactory {

    /**
     * 方法描述: 生成payment
     * @Author Small
     * @param tradeType   交易类型
     * @param payProperties  支付渠道参数配置文件
     * @Date 2020/2/17 16:09
     * @return com.weixing.mall.pay.IPayment
    */
    IPayment getPayment(String tradeType, PayProperties payProperties);

    /**
     * 方法描述: 生成payment
     * @Author Small
     * @param tradeType   交易类型
     * @param payParamJsonStr  支付参数json串
     * @Date 2020/2/17 16:10
     * @return com.weixing.mall.pay.IPayment
    */
    IPayment getPayment(String tradeType, String  payParamJsonStr);

    INotify getNotify(PayProperties payProperties);

    INotify getNotify(List<Map<String, Object>> setVoMapList);
}
